import java.util.LinkedList;
import java.util.Random;

import comun.Mensaje;


public class GeneradorVotos {
	private static final int TOPE_PORCENTAJE_ABSTENCION = 10;
	
	private LinkedList<String> votos;
	private ContadorConectados conectados;
	
	/*
	public static void main(String[] args){
		for(int i=0; i<25; i++){
			generarVotos();
		}
	}
	*/
	public GeneradorVotos(ContadorConectados c){
		conectados = c;
		votos = new LinkedList<String>();
	}
	
	public synchronized String retirarVoto(){
		if(votos.size()==0){
			generarVotos();
		}
		return votos.remove();
	}
	
	private void generarVotos(){
		Random ran = new Random();
		int total = conectados.getCant();
		//int total = 72;
		int cantAbstenciones = total * TOPE_PORCENTAJE_ABSTENCION / 100 ;
		cantAbstenciones = ran.nextInt(cantAbstenciones+1); // le pongo tope de 15% a la cantAbstenciones
		int cantPositivos = ran.nextInt(total-cantAbstenciones+1);
		int cantNegativos = total - (cantAbstenciones+cantPositivos);
		
		System.out.println("\n\nVOTOS GENERADOS:\n\tPOSITIVOS: "+cantPositivos+"\n\tNEGATIVOS: "+cantNegativos+"\n\tABSTENCIONES: "+cantAbstenciones+"\n\tTOTAL: "+(cantAbstenciones+cantNegativos+cantPositivos));
		
		for(int i=0; i<cantPositivos; i++){
			votos.add(Mensaje.VOTO_POSITIVO);
		}
		for(int i=0; i<cantAbstenciones; i++){
			votos.add(Mensaje.VOTO_ABSTENCION);
		}
		for(int i=0; i<cantNegativos; i++){
			votos.add(Mensaje.VOTO_NEGATIVO);
		}
		
	}

}
